import axios from 'axios';

const ConfigBaseURL = "";
if (process.env.NODE_ENV === 'development') { // 说明当前为开发环境
    // 开发环境相关特殊方法
    ConfigBaseURL = process.env.VUE_APP_BASE_URL;
    // baseUrl地址使用.env.development文件中的配置对象API_HOST，API_HOST名称不固定，根据你的定义的来
} else if (process.env.NODE_ENV === 'production') {
    // 生产环境相关特殊方法
    ConfigBaseURL = process.env.VUE_APP_BASE_URL;
    // baseUrl地址使用.env.production文件中的配置对象API_HOST，API_HOST名称不固定，根据你的定义的来
}

// 使用create方法创建axios实例
const Service = axios.create({
    baseURL: ConfigBaseURL, //1. 设置默认地址
    timeout: 7000 // 2. 请求超时时间

});

//3. 给POST请求添加请求头设置（不同项目，值不一样）
Service.defaults.headers.post['Content-Type'] = 'application/json;charset=UTF-8';
//4.1 添加请求拦截器
Service.interceptors.request.use(request => {
    this.$store.dispatch('loadingStart'); // 显示loading组件
    /* if (store.getters.token) {
        request.headers['X-Token'] = getToken() // 让每个请求携带token--['X-Token']为自定义key
    } */
    return request;
}, error => {
    console.log("aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa");
    this.$store.dispatch('loadingEnd');
    return Promise.reject(error);
});

//4.2 添加响应拦截器
Service.interceptors.response.use(response => {
    console.log("bbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbb");
    this.$store.dispatch('loadingEnd');
    return response.data;
}, error => {
    const msg = error.Message !== undefined ? error.Message : ''
    Message({
        message: '网络错误' + msg,
        type: 'error',
        duration: 3 * 1000
    });
    this.$store.dispatch('loadingEnd');
    return Promise.reject(error);
});